server push
サーバのデータ変更をクライアントから察知したい
方法
下に行くほどモダン
更新があろうがなかろうがリクエストをする
ポーリング間隔が長いと時間がかかる
ポーリング間隔が短いとサーバ負荷が高まる
pros
更新がなければリクエストは飛ばない(pollingの問題を解決)
cons
通信を貼る前にサーバー側で更新されると待ち状態になる
再度通信をはるコスト
pros
Cometのconsを解決
通信を貼り直さずに保持してchunkでレスポンス
cons
クライアント→サーバー方向の通信ができない
HTTP connectionを貼り続けるのでCPU loadが高い
pros
SSEのconsを解決
HTTPではなくTCPベースの新規のプロトコル(WebSocket)を使ってパフォーマンスを出す
クライアント→サーバもできるようになった
cons
UDPが使えない(映像配信・クラウドゲーミングなどのユースケースに不向き)
WebRTC(クライアント同士の双方向通信向けプロトコル(P2P))
pros
通信を確立できればサーバー経由が不要
ブラウザで実装されている
cons
プロトコルがかなり複雑く、ハイレベルAPIを使うので柔軟性が低い(buffering, decoding, renderingはブラウザがコントロール)
pros
柔軟性が高く、UDPのようなユースケースにも対応
cons
参考